

#ifndef __I_VERTEXBUFFER_H__
#define __I_VERTEXBUFFER_H__

#include <export.h>
#include <iobject.h>
#include <gfx/enum.h>

/**
 * \addtogroup graphics
 * @{
 */

/**
 * @brief Interface of a (HW/SW) buffer holding vertex data.
 */
struct CE_API iVertexBuffer : public iObject
{

  virtual bool Copy (unsigned offset, unsigned size, const void* data) = 0;

  virtual bool Lock (unsigned offset, void** data, ceBufferAccessMode mode) = 0;

  virtual bool Unlock () = 0;

  virtual void* Bind () = 0;

};

/** @} */

#endif /* ! __I_VERTEXBUFFER_H__ */ 
